home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 November / Macworld (1999-11).dmg / Updaters / WhiteCap 3.0.4 / WhiteCap Source.sit / WhiteCap Source / Common / General Tools / Headers / XStrList.h < prev    next >
Text File  |  1999-07-13  |  1KB  |  51 lines

  1. #ifndef _XSTRLIST_
  2. #define _XSTRLIST_
  3.  
  4. #include "XPtrList.h"
  5.  
  6.  
  7. enum XStrListOptsT {
  8.     cDuplicatesAllowed,
  9.     cNoDuplicates_CaseSensitive,
  10.     cNoDuplicates_CaseInsensitive
  11. };
  12.  
  13.  
  14.  
  15. class XStrList {
  16.  
  17.     public:
  18.                                 XStrList( XStrListOptsT inOption, ListOrderingT inOrdering = cOrderNotImportant );
  19.         virtual                    ~XStrList();
  20.             
  21.         // Returns what index the copy of the given string now occupies (1-based indexing).  If 0 is returned,
  22.         // a copy of the string was not added because it was a duplicate (if that flag is on)
  23.         long                    Add( const void* inData, long inLen );
  24.         long                    Add( const char* inStr );                    
  25.         long                    Add( const UtilStr& inStr );
  26.         
  27.         void                    RemoveAll();
  28.         void                    Remove( long inIndex ); 
  29.         
  30.         // Look for an item with a matching name.  If 0 is returned, no item was found.
  31.         virtual long            FindIndexOf( const char* inStr ) const;
  32.         long                    FindIndexOf( const UtilStr& inStr ) const;
  33.         
  34.         // Returns a copy of the string's contents
  35.         bool                    Fetch( long inIndex, UtilStr& outStr ) const;    
  36.         
  37.         // Returns direct access to the string (it cannot be changed)
  38.         const UtilStr*            Fetch( long inIndex ) const;
  39.  
  40.         inline long                Count()    const                                    { return mStrings.Count();    }
  41.  
  42.     protected:
  43.         static int                sStrComparitor( const void* inA, const void* inB );
  44.         static int                sStrComparitorCI( const void* inA, const void* inB );
  45.         XStrListOptsT            mStrListOption;
  46.         XPtrList                mStrings;
  47.         
  48. };
  49.  
  50.  
  51. #endif